<template>
  <h1>{{result}}</h1>
  <ul style="padding: 10px;">
    <h3>总结：</h3>

    <li> 1、引入 defineComponent() 以正确推断 setup() 组件的参数类型。

    </li>
    <li> 2、defineComponent 可以正确适配无 props、数组 props 等形式，
      defineComponent 可以接受显式的自定义 props 接口或从属性验证对象中自动推断
    </li>
    <li>
      3、在 tsx 中，element-ui 等全局注册的组件依然要用 kebab-case 形式
      在 tsx 中，v-model 要用 model={{ value, callback }} 写法
      在 tsx 中，scoped slots 要用 scopedSlots = { {   foo : (scope) => ( ) } } 写法
    </li>
    <li>
      4、defineComponent 并不适用于函数式组件，应使用 RenderContext 解决

    </li>
  </ul>
</template>

<script>
import { defineComponent }  from "vue";
export default defineComponent({
  setup() {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve({
          result: "异步组件2"
        });
      }, 5000)
    })
  }
})
</script>